#include <iostream>
#include <future>

int Add(int num1, int num2)
{
  std::cout << "Add\n";
  return num1 + num2;
}

int main()
{
  // 进行异步非阻塞调用
  //std::future<int> res = std::async(std::launch::async, Add, 11, 22);
  //只有当这个future<int>获取结果采取执行函数
  std::future<int> res = std::async(std::launch::deferred, Add, 11, 22);
  std::this_thread::sleep_for(std::chrono::seconds(1));
  // future<int>::get()
  std::cout << "-------------------" << std::endl;
  std::cout << res.get() << std::endl; // 未完成会阻塞

  return 0;
}